package com.jm.common.tool;

import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

/**
 * @author kong
 */
public class ClassTool {
    private ClassTool() {
    }

    /**
     * 获取对象class
     */
    public static Class<?> getClassz(Class<?> classz) {
        Type type = classz.getGenericSuperclass();
        Type[] types = ((ParameterizedType) type).getActualTypeArguments();
        return (Class<?>) types[1];
    }

    /**
     * 获取对象属性 并修改属性为可访问
     */
    public static Field getField(Class<?> classz, String name) {
        try {
            Field field = classz.getDeclaredField(name);
            field.setAccessible(true);
            return field;
        } catch (NoSuchFieldException e) {
            return null;
        }
    }
}
